Más allá de todas las otras intervenciones muy interesantes, me gustaría destacar el proyecto Kemari en la sección de Arquitectura del Kernel. Se trata de un proyecto que nació en Japón en el año 2007 de la mano de un equipo formado de la siguiente manera:
Yoshiaki Tamura
Yoshisato Yanagisawa
Koji Sato
Seiji Kihara
Satoshi Moriai
En la práctica, intentamos crear una Alta Disponibilidad entre Máquinas Virtuales muy potente, veamos por ejemplo los siguientes dos esquemas del proyecto:
A partir de estos dos esquemas, es evidente que existe un mecanismo de sincronización entre dos máquinas virtuales idénticas que se instancian en dos máquinas físicas diferentes. El resultado es que un usuario conectado a la máquina virtual no se da cuenta de que la máquina física que hospedó la máquina virtual está en un error de hardware.
Pensemos en lo que ha sido la Alta Disponibilidad para las máquinas virtuales hasta ahora, veamos la HA de la Infraestructura VMware, si ocurre una falla de hardware, el sistema hearthbeat entre los clústeres reinicia las máquinas virtuales alojadas por la máquina fallida en otros hosts, esto significa al menos un apagado automático y un reinicio rápido. En su lugar, recordemos cómo funcionan los clústeres activos/pasivos mucho más conocidos y antiguos de Microsoft, por ejemplo.
Hay al menos dos máquinas físicas con discos compartidos y una red dedicada. En caso de fallo del nodo activo, los servicios agrupados que ya no responden son reemplazados inmediatamente por los servicios del nodo pasivo iniciados para la ocasión, en este caso no hay tiempo de inactividad del negocio.
En el caso del proyecto kemari, si pensamos que todos los archivos de la máquina virtual residen en el almacenamiento compartido de los clústeres, y si pensamos en cómo funciona la VMotion de VMware que transfiere y sincroniza solo el contenido de la memoria de la máquina virtual de un nodo a otro y pensamos en tener dos instancias de la misma máquina virtual en dos máquinas físicas separadas, Uno de estos en estado de espera y reposo, solo necesitamos agregar la sincronización de los contenidos de la memoria y un latido para migrar instantáneamente los accesos a la otra instancia.
Para los que no lo sepan, hay un producto de terceros de pago que funciona con Vmware y Citrix XenServer que hace más o menos lo mismo, este es everRun by Marathon y está integrado en la HA de Citrix XenServer 5.0.0.